package br.com.controle.web;

import br.com.controle.ejb.ProdutoSessionBean; 
import br.com.controle.entity.Medida;
import br.com.controle.entity.Produto;  
import br.com.controle.entity.TipoEndereco;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext; 
import javax.faces.model.SelectItem;

@ManagedBean(name = "produtoController")
@SessionScoped
public class ProdutoMBean {
    
    @EJB
    private ProdutoSessionBean produtoSessionBean;
    private Produto produto = new Produto();
    private Produto produtoSelecionado;
    
    public ProdutoMBean() {
    }
    
    public List getListaProdutos() { 
        return produtoSessionBean.retrieve();  
    }     
    
    public void adicionarProduto() {
        System.out.println("##adicionarProduto");
        
        produtoSessionBean.create(produto);        
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Nova produto adicionada com sucesso!"));
    }
    
    public void novaProduto() {
        System.out.println("##novaProduto");
        produto = new Produto();
    }     
    
    public void carregarProduto() {
        System.out.println("##carregarProduto" + produtoSelecionado.getId());        
        produto = produtoSessionBean.getProduto(produtoSelecionado);
    }    
    
    public void excluirProduto() {
            produtoSessionBean.delete(produtoSelecionado);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Excluído com sucesso!"));
    }    

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public Produto getProdutoSelecionado() {
        return produtoSelecionado;
    }

    public void setProdutoSelecionado(Produto produtoSelecionado) {
        this.produtoSelecionado = produtoSelecionado;
    }
    
    public javax.faces.model.SelectItem[] getMedida(){
        SelectItem[] options = null;
        List<Medida> medida = produtoSessionBean.getMedida();
        if (medida != null && medida.size() > 0)
        {
            int i = 0;
            options = new SelectItem[medida.size()];
            for (Medida dc : medida)
            {
                options[i++] = new SelectItem(dc, dc.getNome());
            }
        }
        return options;
    }        
}
